import os
import numpy as np
import tempfile, zipfile
import torch
import torch.nn as nn
import torch.nn.functional as F
import torchvision

class Model(nn.Module):
    def __init__(self):
        super(Model, self).__init__()

        self.backbone_body_0_0 = nn.ZeroPad2d(padding=(0,1,0,1))
        self.backbone_body_0_1 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=3, kernel_size=(3,3), out_channels=32, padding=(0,0), padding_mode='zeros', stride=(2,2))
        self.backbone_body_0_2 = nn.ReLU6()
        self.backbone_body_1_conv_0_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=32, in_channels=32, kernel_size=(3,3), out_channels=32, padding=(1,1), padding_mode='zeros', stride=(1,1))
        self.backbone_body_1_conv_0_1 = nn.ReLU6()
        self.backbone_body_1_conv_1 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=32, kernel_size=(1,1), out_channels=16, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_2_conv_0_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=16, kernel_size=(1,1), out_channels=96, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_2_conv_0_1 = nn.ReLU6()
        self.backbone_body_2_conv_1_0 = nn.ZeroPad2d(padding=(0,1,0,1))
        self.backbone_body_2_conv_1_1 = nn.Conv2d(bias=True, dilation=(1,1), groups=96, in_channels=96, kernel_size=(3,3), out_channels=96, padding=(0,0), padding_mode='zeros', stride=(2,2))
        self.backbone_body_2_conv_1_2 = nn.ReLU6()
        self.backbone_body_2_conv_2 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=96, kernel_size=(1,1), out_channels=24, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_3_conv_0_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=24, kernel_size=(1,1), out_channels=144, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_3_conv_0_1 = nn.ReLU6()
        self.backbone_body_3_conv_1_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=144, in_channels=144, kernel_size=(3,3), out_channels=144, padding=(1,1), padding_mode='zeros', stride=(1,1))
        self.backbone_body_3_conv_1_1 = nn.ReLU6()
        self.backbone_body_3_conv_2 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=144, kernel_size=(1,1), out_channels=24, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_4_conv_0_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=24, kernel_size=(1,1), out_channels=144, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_4_conv_0_1 = nn.ReLU6()
        self.backbone_body_4_conv_1_0 = nn.ZeroPad2d(padding=(0,1,0,1))
        self.backbone_body_4_conv_1_1 = nn.Conv2d(bias=True, dilation=(1,1), groups=144, in_channels=144, kernel_size=(3,3), out_channels=144, padding=(0,0), padding_mode='zeros', stride=(2,2))
        self.backbone_body_4_conv_1_2 = nn.ReLU6()
        self.backbone_body_4_conv_2 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=144, kernel_size=(1,1), out_channels=32, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_5_conv_0_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=32, kernel_size=(1,1), out_channels=192, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_5_conv_0_1 = nn.ReLU6()
        self.backbone_body_5_conv_1_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=192, in_channels=192, kernel_size=(3,3), out_channels=192, padding=(1,1), padding_mode='zeros', stride=(1,1))
        self.backbone_body_5_conv_1_1 = nn.ReLU6()
        self.backbone_body_5_conv_2 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=192, kernel_size=(1,1), out_channels=32, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_6_conv_0_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=32, kernel_size=(1,1), out_channels=192, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_6_conv_0_1 = nn.ReLU6()
        self.backbone_body_6_conv_1_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=192, in_channels=192, kernel_size=(3,3), out_channels=192, padding=(1,1), padding_mode='zeros', stride=(1,1))
        self.backbone_body_6_conv_1_1 = nn.ReLU6()
        self.backbone_body_6_conv_2 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=192, kernel_size=(1,1), out_channels=32, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_7_conv_0_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=32, kernel_size=(1,1), out_channels=192, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_7_conv_0_1 = nn.ReLU6()
        self.backbone_body_7_conv_1_0 = nn.ZeroPad2d(padding=(0,1,0,1))
        self.backbone_body_7_conv_1_1 = nn.Conv2d(bias=True, dilation=(1,1), groups=192, in_channels=192, kernel_size=(3,3), out_channels=192, padding=(0,0), padding_mode='zeros', stride=(2,2))
        self.backbone_body_7_conv_1_2 = nn.ReLU6()
        self.backbone_body_7_conv_2 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=192, kernel_size=(1,1), out_channels=64, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_8_conv_0_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=64, kernel_size=(1,1), out_channels=384, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_8_conv_0_1 = nn.ReLU6()
        self.backbone_body_8_conv_1_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=384, in_channels=384, kernel_size=(3,3), out_channels=384, padding=(1,1), padding_mode='zeros', stride=(1,1))
        self.backbone_body_8_conv_1_1 = nn.ReLU6()
        self.backbone_body_8_conv_2 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=384, kernel_size=(1,1), out_channels=64, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_9_conv_0_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=64, kernel_size=(1,1), out_channels=384, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_9_conv_0_1 = nn.ReLU6()
        self.backbone_body_9_conv_1_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=384, in_channels=384, kernel_size=(3,3), out_channels=384, padding=(1,1), padding_mode='zeros', stride=(1,1))
        self.backbone_body_9_conv_1_1 = nn.ReLU6()
        self.backbone_body_9_conv_2 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=384, kernel_size=(1,1), out_channels=64, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_10_conv_0_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=64, kernel_size=(1,1), out_channels=384, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_10_conv_0_1 = nn.ReLU6()
        self.backbone_body_10_conv_1_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=384, in_channels=384, kernel_size=(3,3), out_channels=384, padding=(1,1), padding_mode='zeros', stride=(1,1))
        self.backbone_body_10_conv_1_1 = nn.ReLU6()
        self.backbone_body_10_conv_2 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=384, kernel_size=(1,1), out_channels=64, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_11_conv_0_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=64, kernel_size=(1,1), out_channels=384, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_11_conv_0_1 = nn.ReLU6()
        self.backbone_body_11_conv_1_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=384, in_channels=384, kernel_size=(3,3), out_channels=384, padding=(1,1), padding_mode='zeros', stride=(1,1))
        self.backbone_body_11_conv_1_1 = nn.ReLU6()
        self.backbone_body_11_conv_2 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=384, kernel_size=(1,1), out_channels=96, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_12_conv_0_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=96, kernel_size=(1,1), out_channels=576, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_12_conv_0_1 = nn.ReLU6()
        self.backbone_body_12_conv_1_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=576, in_channels=576, kernel_size=(3,3), out_channels=576, padding=(1,1), padding_mode='zeros', stride=(1,1))
        self.backbone_body_12_conv_1_1 = nn.ReLU6()
        self.backbone_body_12_conv_2 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=576, kernel_size=(1,1), out_channels=96, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_13_conv_0_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=96, kernel_size=(1,1), out_channels=576, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_13_conv_0_1 = nn.ReLU6()
        self.backbone_body_13_conv_1_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=576, in_channels=576, kernel_size=(3,3), out_channels=576, padding=(1,1), padding_mode='zeros', stride=(1,1))
        self.backbone_body_13_conv_1_1 = nn.ReLU6()
        self.backbone_body_13_conv_2 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=576, kernel_size=(1,1), out_channels=96, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_14_conv_0_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=96, kernel_size=(1,1), out_channels=576, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_14_conv_0_1 = nn.ReLU6()
        self.backbone_body_14_conv_1_0 = nn.ZeroPad2d(padding=(0,1,0,1))
        self.backbone_body_14_conv_1_1 = nn.Conv2d(bias=True, dilation=(1,1), groups=576, in_channels=576, kernel_size=(3,3), out_channels=576, padding=(0,0), padding_mode='zeros', stride=(2,2))
        self.backbone_body_14_conv_1_2 = nn.ReLU6()
        self.backbone_body_14_conv_2 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=576, kernel_size=(1,1), out_channels=160, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_15_conv_0_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=160, kernel_size=(1,1), out_channels=960, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_15_conv_0_1 = nn.ReLU6()
        self.backbone_body_15_conv_1_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=960, in_channels=960, kernel_size=(3,3), out_channels=960, padding=(1,1), padding_mode='zeros', stride=(1,1))
        self.backbone_body_15_conv_1_1 = nn.ReLU6()
        self.backbone_body_15_conv_2 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=960, kernel_size=(1,1), out_channels=160, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_16_conv_0_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=160, kernel_size=(1,1), out_channels=960, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_16_conv_0_1 = nn.ReLU6()
        self.backbone_body_16_conv_1_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=960, in_channels=960, kernel_size=(3,3), out_channels=960, padding=(1,1), padding_mode='zeros', stride=(1,1))
        self.backbone_body_16_conv_1_1 = nn.ReLU6()
        self.backbone_body_16_conv_2 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=960, kernel_size=(1,1), out_channels=160, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_17_conv_0_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=160, kernel_size=(1,1), out_channels=960, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_17_conv_0_1 = nn.ReLU6()
        self.backbone_body_17_conv_1_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=960, in_channels=960, kernel_size=(3,3), out_channels=960, padding=(1,1), padding_mode='zeros', stride=(1,1))
        self.backbone_body_17_conv_1_1 = nn.ReLU6()
        self.backbone_body_17_conv_2 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=960, kernel_size=(1,1), out_channels=320, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_18_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=320, kernel_size=(1,1), out_channels=1280, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_body_18_1 = nn.ReLU6()
        self.backbone_fpn_inner_blocks_3 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=1280, kernel_size=(1,1), out_channels=64, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_fpn_inner_blocks_2 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=64, kernel_size=(1,1), out_channels=64, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_fpn_layer_blocks_2_conv_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=64, in_channels=64, kernel_size=(3,3), out_channels=64, padding=(1,1), padding_mode='zeros', stride=(1,1))
        self.backbone_fpn_layer_blocks_2_conv_1 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=64, kernel_size=(1,1), out_channels=32, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_fpn_layer_blocks_2_conv_2 = nn.ReLU()
        self.backbone_fpn_inner_blocks_1 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=32, kernel_size=(1,1), out_channels=32, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_fpn_layer_blocks_1_conv_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=32, in_channels=32, kernel_size=(3,3), out_channels=32, padding=(1,1), padding_mode='zeros', stride=(1,1))
        self.backbone_fpn_layer_blocks_1_conv_1 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=32, kernel_size=(1,1), out_channels=24, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_fpn_layer_blocks_1_conv_2 = nn.ReLU()
        self.backbone_fpn_inner_blocks_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=24, kernel_size=(1,1), out_channels=24, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_fpn_layer_blocks_0_conv_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=24, in_channels=24, kernel_size=(3,3), out_channels=24, padding=(1,1), padding_mode='zeros', stride=(1,1))
        self.backbone_fpn_layer_blocks_0_conv_1 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=24, kernel_size=(1,1), out_channels=24, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.backbone_fpn_layer_blocks_0_conv_2 = nn.ReLU()
        self.hm_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=24, in_channels=24, kernel_size=(3,3), out_channels=24, padding=(1,1), padding_mode='zeros', stride=(1,1))
        self.hm_1 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=24, kernel_size=(1,1), out_channels=96, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.hm_2 = nn.ReLU()
        self.hm_3 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=96, kernel_size=(1,1), out_channels=1, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.hps_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=24, in_channels=24, kernel_size=(3,3), out_channels=24, padding=(1,1), padding_mode='zeros', stride=(1,1))
        self.hps_1 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=24, kernel_size=(1,1), out_channels=96, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.hps_2 = nn.ReLU()
        self.hps_3 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=96, kernel_size=(1,1), out_channels=34, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.hm_hp_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=24, in_channels=24, kernel_size=(3,3), out_channels=24, padding=(1,1), padding_mode='zeros', stride=(1,1))
        self.hm_hp_1 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=24, kernel_size=(1,1), out_channels=96, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.hm_hp_2 = nn.ReLU()
        self.hm_hp_3 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=96, kernel_size=(1,1), out_channels=17, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.hp_offset_0 = nn.Conv2d(bias=True, dilation=(1,1), groups=24, in_channels=24, kernel_size=(3,3), out_channels=24, padding=(1,1), padding_mode='zeros', stride=(1,1))
        self.hp_offset_1 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=24, kernel_size=(1,1), out_channels=96, padding=(0,0), padding_mode='zeros', stride=(1,1))
        self.hp_offset_2 = nn.ReLU()
        self.hp_offset_3 = nn.Conv2d(bias=True, dilation=(1,1), groups=1, in_channels=96, kernel_size=(1,1), out_channels=34, padding=(0,0), padding_mode='zeros', stride=(1,1))

        archive = zipfile.ZipFile('/Users/lewisjin/work/codes/wnn/vendor/movenet/movenet.pnnx.bin', 'r')
        self.backbone_body_0_1.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.0.1.bias', (32), 'float32')
        self.backbone_body_0_1.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.0.1.weight', (32,3,3,3), 'float32')
        self.backbone_body_1_conv_0_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.1.conv.0.0.bias', (32), 'float32')
        self.backbone_body_1_conv_0_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.1.conv.0.0.weight', (32,1,3,3), 'float32')
        self.backbone_body_1_conv_1.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.1.conv.1.bias', (16), 'float32')
        self.backbone_body_1_conv_1.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.1.conv.1.weight', (16,32,1,1), 'float32')
        self.backbone_body_2_conv_0_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.2.conv.0.0.bias', (96), 'float32')
        self.backbone_body_2_conv_0_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.2.conv.0.0.weight', (96,16,1,1), 'float32')
        self.backbone_body_2_conv_1_1.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.2.conv.1.1.bias', (96), 'float32')
        self.backbone_body_2_conv_1_1.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.2.conv.1.1.weight', (96,1,3,3), 'float32')
        self.backbone_body_2_conv_2.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.2.conv.2.bias', (24), 'float32')
        self.backbone_body_2_conv_2.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.2.conv.2.weight', (24,96,1,1), 'float32')
        self.backbone_body_3_conv_0_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.3.conv.0.0.bias', (144), 'float32')
        self.backbone_body_3_conv_0_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.3.conv.0.0.weight', (144,24,1,1), 'float32')
        self.backbone_body_3_conv_1_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.3.conv.1.0.bias', (144), 'float32')
        self.backbone_body_3_conv_1_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.3.conv.1.0.weight', (144,1,3,3), 'float32')
        self.backbone_body_3_conv_2.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.3.conv.2.bias', (24), 'float32')
        self.backbone_body_3_conv_2.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.3.conv.2.weight', (24,144,1,1), 'float32')
        self.backbone_body_4_conv_0_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.4.conv.0.0.bias', (144), 'float32')
        self.backbone_body_4_conv_0_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.4.conv.0.0.weight', (144,24,1,1), 'float32')
        self.backbone_body_4_conv_1_1.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.4.conv.1.1.bias', (144), 'float32')
        self.backbone_body_4_conv_1_1.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.4.conv.1.1.weight', (144,1,3,3), 'float32')
        self.backbone_body_4_conv_2.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.4.conv.2.bias', (32), 'float32')
        self.backbone_body_4_conv_2.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.4.conv.2.weight', (32,144,1,1), 'float32')
        self.backbone_body_5_conv_0_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.5.conv.0.0.bias', (192), 'float32')
        self.backbone_body_5_conv_0_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.5.conv.0.0.weight', (192,32,1,1), 'float32')
        self.backbone_body_5_conv_1_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.5.conv.1.0.bias', (192), 'float32')
        self.backbone_body_5_conv_1_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.5.conv.1.0.weight', (192,1,3,3), 'float32')
        self.backbone_body_5_conv_2.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.5.conv.2.bias', (32), 'float32')
        self.backbone_body_5_conv_2.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.5.conv.2.weight', (32,192,1,1), 'float32')
        self.backbone_body_6_conv_0_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.6.conv.0.0.bias', (192), 'float32')
        self.backbone_body_6_conv_0_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.6.conv.0.0.weight', (192,32,1,1), 'float32')
        self.backbone_body_6_conv_1_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.6.conv.1.0.bias', (192), 'float32')
        self.backbone_body_6_conv_1_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.6.conv.1.0.weight', (192,1,3,3), 'float32')
        self.backbone_body_6_conv_2.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.6.conv.2.bias', (32), 'float32')
        self.backbone_body_6_conv_2.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.6.conv.2.weight', (32,192,1,1), 'float32')
        self.backbone_body_7_conv_0_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.7.conv.0.0.bias', (192), 'float32')
        self.backbone_body_7_conv_0_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.7.conv.0.0.weight', (192,32,1,1), 'float32')
        self.backbone_body_7_conv_1_1.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.7.conv.1.1.bias', (192), 'float32')
        self.backbone_body_7_conv_1_1.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.7.conv.1.1.weight', (192,1,3,3), 'float32')
        self.backbone_body_7_conv_2.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.7.conv.2.bias', (64), 'float32')
        self.backbone_body_7_conv_2.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.7.conv.2.weight', (64,192,1,1), 'float32')
        self.backbone_body_8_conv_0_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.8.conv.0.0.bias', (384), 'float32')
        self.backbone_body_8_conv_0_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.8.conv.0.0.weight', (384,64,1,1), 'float32')
        self.backbone_body_8_conv_1_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.8.conv.1.0.bias', (384), 'float32')
        self.backbone_body_8_conv_1_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.8.conv.1.0.weight', (384,1,3,3), 'float32')
        self.backbone_body_8_conv_2.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.8.conv.2.bias', (64), 'float32')
        self.backbone_body_8_conv_2.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.8.conv.2.weight', (64,384,1,1), 'float32')
        self.backbone_body_9_conv_0_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.9.conv.0.0.bias', (384), 'float32')
        self.backbone_body_9_conv_0_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.9.conv.0.0.weight', (384,64,1,1), 'float32')
        self.backbone_body_9_conv_1_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.9.conv.1.0.bias', (384), 'float32')
        self.backbone_body_9_conv_1_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.9.conv.1.0.weight', (384,1,3,3), 'float32')
        self.backbone_body_9_conv_2.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.9.conv.2.bias', (64), 'float32')
        self.backbone_body_9_conv_2.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.9.conv.2.weight', (64,384,1,1), 'float32')
        self.backbone_body_10_conv_0_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.10.conv.0.0.bias', (384), 'float32')
        self.backbone_body_10_conv_0_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.10.conv.0.0.weight', (384,64,1,1), 'float32')
        self.backbone_body_10_conv_1_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.10.conv.1.0.bias', (384), 'float32')
        self.backbone_body_10_conv_1_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.10.conv.1.0.weight', (384,1,3,3), 'float32')
        self.backbone_body_10_conv_2.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.10.conv.2.bias', (64), 'float32')
        self.backbone_body_10_conv_2.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.10.conv.2.weight', (64,384,1,1), 'float32')
        self.backbone_body_11_conv_0_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.11.conv.0.0.bias', (384), 'float32')
        self.backbone_body_11_conv_0_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.11.conv.0.0.weight', (384,64,1,1), 'float32')
        self.backbone_body_11_conv_1_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.11.conv.1.0.bias', (384), 'float32')
        self.backbone_body_11_conv_1_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.11.conv.1.0.weight', (384,1,3,3), 'float32')
        self.backbone_body_11_conv_2.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.11.conv.2.bias', (96), 'float32')
        self.backbone_body_11_conv_2.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.11.conv.2.weight', (96,384,1,1), 'float32')
        self.backbone_body_12_conv_0_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.12.conv.0.0.bias', (576), 'float32')
        self.backbone_body_12_conv_0_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.12.conv.0.0.weight', (576,96,1,1), 'float32')
        self.backbone_body_12_conv_1_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.12.conv.1.0.bias', (576), 'float32')
        self.backbone_body_12_conv_1_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.12.conv.1.0.weight', (576,1,3,3), 'float32')
        self.backbone_body_12_conv_2.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.12.conv.2.bias', (96), 'float32')
        self.backbone_body_12_conv_2.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.12.conv.2.weight', (96,576,1,1), 'float32')
        self.backbone_body_13_conv_0_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.13.conv.0.0.bias', (576), 'float32')
        self.backbone_body_13_conv_0_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.13.conv.0.0.weight', (576,96,1,1), 'float32')
        self.backbone_body_13_conv_1_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.13.conv.1.0.bias', (576), 'float32')
        self.backbone_body_13_conv_1_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.13.conv.1.0.weight', (576,1,3,3), 'float32')
        self.backbone_body_13_conv_2.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.13.conv.2.bias', (96), 'float32')
        self.backbone_body_13_conv_2.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.13.conv.2.weight', (96,576,1,1), 'float32')
        self.backbone_body_14_conv_0_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.14.conv.0.0.bias', (576), 'float32')
        self.backbone_body_14_conv_0_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.14.conv.0.0.weight', (576,96,1,1), 'float32')
        self.backbone_body_14_conv_1_1.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.14.conv.1.1.bias', (576), 'float32')
        self.backbone_body_14_conv_1_1.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.14.conv.1.1.weight', (576,1,3,3), 'float32')
        self.backbone_body_14_conv_2.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.14.conv.2.bias', (160), 'float32')
        self.backbone_body_14_conv_2.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.14.conv.2.weight', (160,576,1,1), 'float32')
        self.backbone_body_15_conv_0_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.15.conv.0.0.bias', (960), 'float32')
        self.backbone_body_15_conv_0_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.15.conv.0.0.weight', (960,160,1,1), 'float32')
        self.backbone_body_15_conv_1_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.15.conv.1.0.bias', (960), 'float32')
        self.backbone_body_15_conv_1_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.15.conv.1.0.weight', (960,1,3,3), 'float32')
        self.backbone_body_15_conv_2.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.15.conv.2.bias', (160), 'float32')
        self.backbone_body_15_conv_2.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.15.conv.2.weight', (160,960,1,1), 'float32')
        self.backbone_body_16_conv_0_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.16.conv.0.0.bias', (960), 'float32')
        self.backbone_body_16_conv_0_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.16.conv.0.0.weight', (960,160,1,1), 'float32')
        self.backbone_body_16_conv_1_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.16.conv.1.0.bias', (960), 'float32')
        self.backbone_body_16_conv_1_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.16.conv.1.0.weight', (960,1,3,3), 'float32')
        self.backbone_body_16_conv_2.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.16.conv.2.bias', (160), 'float32')
        self.backbone_body_16_conv_2.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.16.conv.2.weight', (160,960,1,1), 'float32')
        self.backbone_body_17_conv_0_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.17.conv.0.0.bias', (960), 'float32')
        self.backbone_body_17_conv_0_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.17.conv.0.0.weight', (960,160,1,1), 'float32')
        self.backbone_body_17_conv_1_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.17.conv.1.0.bias', (960), 'float32')
        self.backbone_body_17_conv_1_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.17.conv.1.0.weight', (960,1,3,3), 'float32')
        self.backbone_body_17_conv_2.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.17.conv.2.bias', (320), 'float32')
        self.backbone_body_17_conv_2.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.17.conv.2.weight', (320,960,1,1), 'float32')
        self.backbone_body_18_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.18.0.bias', (1280), 'float32')
        self.backbone_body_18_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.body.18.0.weight', (1280,320,1,1), 'float32')
        self.backbone_fpn_inner_blocks_3.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.fpn.inner_blocks.3.bias', (64), 'float32')
        self.backbone_fpn_inner_blocks_3.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.fpn.inner_blocks.3.weight', (64,1280,1,1), 'float32')
        self.backbone_fpn_inner_blocks_2.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.fpn.inner_blocks.2.bias', (64), 'float32')
        self.backbone_fpn_inner_blocks_2.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.fpn.inner_blocks.2.weight', (64,64,1,1), 'float32')
        self.backbone_fpn_layer_blocks_2_conv_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.fpn.layer_blocks.2.conv.0.bias', (64), 'float32')
        self.backbone_fpn_layer_blocks_2_conv_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.fpn.layer_blocks.2.conv.0.weight', (64,1,3,3), 'float32')
        self.backbone_fpn_layer_blocks_2_conv_1.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.fpn.layer_blocks.2.conv.1.bias', (32), 'float32')
        self.backbone_fpn_layer_blocks_2_conv_1.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.fpn.layer_blocks.2.conv.1.weight', (32,64,1,1), 'float32')
        self.backbone_fpn_inner_blocks_1.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.fpn.inner_blocks.1.bias', (32), 'float32')
        self.backbone_fpn_inner_blocks_1.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.fpn.inner_blocks.1.weight', (32,32,1,1), 'float32')
        self.backbone_fpn_layer_blocks_1_conv_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.fpn.layer_blocks.1.conv.0.bias', (32), 'float32')
        self.backbone_fpn_layer_blocks_1_conv_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.fpn.layer_blocks.1.conv.0.weight', (32,1,3,3), 'float32')
        self.backbone_fpn_layer_blocks_1_conv_1.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.fpn.layer_blocks.1.conv.1.bias', (24), 'float32')
        self.backbone_fpn_layer_blocks_1_conv_1.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.fpn.layer_blocks.1.conv.1.weight', (24,32,1,1), 'float32')
        self.backbone_fpn_inner_blocks_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.fpn.inner_blocks.0.bias', (24), 'float32')
        self.backbone_fpn_inner_blocks_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.fpn.inner_blocks.0.weight', (24,24,1,1), 'float32')
        self.backbone_fpn_layer_blocks_0_conv_0.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.fpn.layer_blocks.0.conv.0.bias', (24), 'float32')
        self.backbone_fpn_layer_blocks_0_conv_0.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.fpn.layer_blocks.0.conv.0.weight', (24,1,3,3), 'float32')
        self.backbone_fpn_layer_blocks_0_conv_1.bias = self.load_pnnx_bin_as_parameter(archive, 'backbone.fpn.layer_blocks.0.conv.1.bias', (24), 'float32')
        self.backbone_fpn_layer_blocks_0_conv_1.weight = self.load_pnnx_bin_as_parameter(archive, 'backbone.fpn.layer_blocks.0.conv.1.weight', (24,24,1,1), 'float32')
        self.hm_0.bias = self.load_pnnx_bin_as_parameter(archive, 'hm.0.bias', (24), 'float32')
        self.hm_0.weight = self.load_pnnx_bin_as_parameter(archive, 'hm.0.weight', (24,1,3,3), 'float32')
        self.hm_1.bias = self.load_pnnx_bin_as_parameter(archive, 'hm.1.bias', (96), 'float32')
        self.hm_1.weight = self.load_pnnx_bin_as_parameter(archive, 'hm.1.weight', (96,24,1,1), 'float32')
        self.hm_3.bias = self.load_pnnx_bin_as_parameter(archive, 'hm.3.bias', (1), 'float32')
        self.hm_3.weight = self.load_pnnx_bin_as_parameter(archive, 'hm.3.weight', (1,96,1,1), 'float32')
        self.hps_0.bias = self.load_pnnx_bin_as_parameter(archive, 'hps.0.bias', (24), 'float32')
        self.hps_0.weight = self.load_pnnx_bin_as_parameter(archive, 'hps.0.weight', (24,1,3,3), 'float32')
        self.hps_1.bias = self.load_pnnx_bin_as_parameter(archive, 'hps.1.bias', (96), 'float32')
        self.hps_1.weight = self.load_pnnx_bin_as_parameter(archive, 'hps.1.weight', (96,24,1,1), 'float32')
        self.hps_3.bias = self.load_pnnx_bin_as_parameter(archive, 'hps.3.bias', (34), 'float32')
        self.hps_3.weight = self.load_pnnx_bin_as_parameter(archive, 'hps.3.weight', (34,96,1,1), 'float32')
        self.hm_hp_0.bias = self.load_pnnx_bin_as_parameter(archive, 'hm_hp.0.bias', (24), 'float32')
        self.hm_hp_0.weight = self.load_pnnx_bin_as_parameter(archive, 'hm_hp.0.weight', (24,1,3,3), 'float32')
        self.hm_hp_1.bias = self.load_pnnx_bin_as_parameter(archive, 'hm_hp.1.bias', (96), 'float32')
        self.hm_hp_1.weight = self.load_pnnx_bin_as_parameter(archive, 'hm_hp.1.weight', (96,24,1,1), 'float32')
        self.hm_hp_3.bias = self.load_pnnx_bin_as_parameter(archive, 'hm_hp.3.bias', (17), 'float32')
        self.hm_hp_3.weight = self.load_pnnx_bin_as_parameter(archive, 'hm_hp.3.weight', (17,96,1,1), 'float32')
        self.hp_offset_0.bias = self.load_pnnx_bin_as_parameter(archive, 'hp_offset.0.bias', (24), 'float32')
        self.hp_offset_0.weight = self.load_pnnx_bin_as_parameter(archive, 'hp_offset.0.weight', (24,1,3,3), 'float32')
        self.hp_offset_1.bias = self.load_pnnx_bin_as_parameter(archive, 'hp_offset.1.bias', (96), 'float32')
        self.hp_offset_1.weight = self.load_pnnx_bin_as_parameter(archive, 'hp_offset.1.weight', (96,24,1,1), 'float32')
        self.hp_offset_3.bias = self.load_pnnx_bin_as_parameter(archive, 'hp_offset.3.bias', (34), 'float32')
        self.hp_offset_3.weight = self.load_pnnx_bin_as_parameter(archive, 'hp_offset.3.weight', (34,96,1,1), 'float32')
        self.pnnx_5_pnnx_5 = self.load_pnnx_bin_as_parameter(archive, 'pnnx_5.pnnx_5', (64,64,1), 'float32')
        self.pnnx_6_pnnx_6 = self.load_pnnx_bin_as_parameter(archive, 'pnnx_6.pnnx_6', (64,64,1), 'float32')
        self.pnnx_10_pnnx_10 = self.load_pnnx_bin_as_parameter(archive, 'pnnx_10.pnnx_10', (64,64,1), 'float64')
        archive.close()

    def load_pnnx_bin_as_parameter(self, archive, key, shape, dtype, requires_grad=True):
        return nn.Parameter(self.load_pnnx_bin_as_tensor(archive, key, shape, dtype), requires_grad)

    def load_pnnx_bin_as_tensor(self, archive, key, shape, dtype):
        _, tmppath = tempfile.mkstemp()
        tmpf = open(tmppath, 'wb')
        with archive.open(key) as keyfile:
            tmpf.write(keyfile.read())
        tmpf.close()
        m = np.memmap(tmppath, dtype=dtype, mode='r', shape=shape).copy()
        os.remove(tmppath)
        return torch.from_numpy(m)

    def forward(self, v_0):
        v_1 = self.pnnx_5_pnnx_5
        v_2 = self.pnnx_6_pnnx_6
        v_3 = self.pnnx_10_pnnx_10
        v_4 = self.backbone_body_0_0(v_0)
        v_5 = self.backbone_body_0_1(v_4)
        v_6 = self.backbone_body_0_2(v_5)
        v_7 = self.backbone_body_1_conv_0_0(v_6)
        v_8 = self.backbone_body_1_conv_0_1(v_7)
        v_9 = self.backbone_body_1_conv_1(v_8)
        v_10 = self.backbone_body_2_conv_0_0(v_9)
        v_11 = self.backbone_body_2_conv_0_1(v_10)
        v_12 = self.backbone_body_2_conv_1_0(v_11)
        v_13 = self.backbone_body_2_conv_1_1(v_12)
        v_14 = self.backbone_body_2_conv_1_2(v_13)
        v_15 = self.backbone_body_2_conv_2(v_14)
        v_16 = self.backbone_body_3_conv_0_0(v_15)
        v_17 = self.backbone_body_3_conv_0_1(v_16)
        v_18 = self.backbone_body_3_conv_1_0(v_17)
        v_19 = self.backbone_body_3_conv_1_1(v_18)
        v_20 = self.backbone_body_3_conv_2(v_19)
        v_21 = (v_15 + v_20)
        v_22 = self.backbone_body_4_conv_0_0(v_21)
        v_23 = self.backbone_body_4_conv_0_1(v_22)
        v_24 = self.backbone_body_4_conv_1_0(v_23)
        v_25 = self.backbone_body_4_conv_1_1(v_24)
        v_26 = self.backbone_body_4_conv_1_2(v_25)
        v_27 = self.backbone_body_4_conv_2(v_26)
        v_28 = self.backbone_body_5_conv_0_0(v_27)
        v_29 = self.backbone_body_5_conv_0_1(v_28)
        v_30 = self.backbone_body_5_conv_1_0(v_29)
        v_31 = self.backbone_body_5_conv_1_1(v_30)
        v_32 = self.backbone_body_5_conv_2(v_31)
        v_33 = (v_27 + v_32)
        v_34 = self.backbone_body_6_conv_0_0(v_33)
        v_35 = self.backbone_body_6_conv_0_1(v_34)
        v_36 = self.backbone_body_6_conv_1_0(v_35)
        v_37 = self.backbone_body_6_conv_1_1(v_36)
        v_38 = self.backbone_body_6_conv_2(v_37)
        v_39 = (v_33 + v_38)
        v_40 = self.backbone_body_7_conv_0_0(v_39)
        v_41 = self.backbone_body_7_conv_0_1(v_40)
        v_42 = self.backbone_body_7_conv_1_0(v_41)
        v_43 = self.backbone_body_7_conv_1_1(v_42)
        v_44 = self.backbone_body_7_conv_1_2(v_43)
        v_45 = self.backbone_body_7_conv_2(v_44)
        v_46 = self.backbone_body_8_conv_0_0(v_45)
        v_47 = self.backbone_body_8_conv_0_1(v_46)
        v_48 = self.backbone_body_8_conv_1_0(v_47)
        v_49 = self.backbone_body_8_conv_1_1(v_48)
        v_50 = self.backbone_body_8_conv_2(v_49)
        v_51 = (v_45 + v_50)
        v_52 = self.backbone_body_9_conv_0_0(v_51)
        v_53 = self.backbone_body_9_conv_0_1(v_52)
        v_54 = self.backbone_body_9_conv_1_0(v_53)
        v_55 = self.backbone_body_9_conv_1_1(v_54)
        v_56 = self.backbone_body_9_conv_2(v_55)
        v_57 = (v_51 + v_56)
        v_58 = self.backbone_body_10_conv_0_0(v_57)
        v_59 = self.backbone_body_10_conv_0_1(v_58)
        v_60 = self.backbone_body_10_conv_1_0(v_59)
        v_61 = self.backbone_body_10_conv_1_1(v_60)
        v_62 = self.backbone_body_10_conv_2(v_61)
        v_63 = (v_57 + v_62)
        v_64 = self.backbone_body_11_conv_0_0(v_63)
        v_65 = self.backbone_body_11_conv_0_1(v_64)
        v_66 = self.backbone_body_11_conv_1_0(v_65)
        v_67 = self.backbone_body_11_conv_1_1(v_66)
        v_68 = self.backbone_body_11_conv_2(v_67)
        v_69 = self.backbone_body_12_conv_0_0(v_68)
        v_70 = self.backbone_body_12_conv_0_1(v_69)
        v_71 = self.backbone_body_12_conv_1_0(v_70)
        v_72 = self.backbone_body_12_conv_1_1(v_71)
        v_73 = self.backbone_body_12_conv_2(v_72)
        v_74 = (v_68 + v_73)
        v_75 = self.backbone_body_13_conv_0_0(v_74)
        v_76 = self.backbone_body_13_conv_0_1(v_75)
        v_77 = self.backbone_body_13_conv_1_0(v_76)
        v_78 = self.backbone_body_13_conv_1_1(v_77)
        v_79 = self.backbone_body_13_conv_2(v_78)
        v_80 = (v_74 + v_79)
        v_81 = self.backbone_body_14_conv_0_0(v_80)
        v_82 = self.backbone_body_14_conv_0_1(v_81)
        v_83 = self.backbone_body_14_conv_1_0(v_82)
        v_84 = self.backbone_body_14_conv_1_1(v_83)
        v_85 = self.backbone_body_14_conv_1_2(v_84)
        v_86 = self.backbone_body_14_conv_2(v_85)
        v_87 = self.backbone_body_15_conv_0_0(v_86)
        v_88 = self.backbone_body_15_conv_0_1(v_87)
        v_89 = self.backbone_body_15_conv_1_0(v_88)
        v_90 = self.backbone_body_15_conv_1_1(v_89)
        v_91 = self.backbone_body_15_conv_2(v_90)
        v_92 = (v_86 + v_91)
        v_93 = self.backbone_body_16_conv_0_0(v_92)
        v_94 = self.backbone_body_16_conv_0_1(v_93)
        v_95 = self.backbone_body_16_conv_1_0(v_94)
        v_96 = self.backbone_body_16_conv_1_1(v_95)
        v_97 = self.backbone_body_16_conv_2(v_96)
        v_98 = (v_92 + v_97)
        v_99 = self.backbone_body_17_conv_0_0(v_98)
        v_100 = self.backbone_body_17_conv_0_1(v_99)
        v_101 = self.backbone_body_17_conv_1_0(v_100)
        v_102 = self.backbone_body_17_conv_1_1(v_101)
        v_103 = self.backbone_body_17_conv_2(v_102)
        v_104 = self.backbone_body_18_0(v_103)
        v_105 = self.backbone_body_18_1(v_104)
        v_106 = self.backbone_fpn_inner_blocks_3(v_105)
        v_107 = self.backbone_fpn_inner_blocks_2(v_63)
        v_108 = F.upsample(input=v_106, align_corners=False, mode='bilinear', scale_factor=(2.000000,2.000000))
        v_109 = (v_107 + v_108)
        v_110 = self.backbone_fpn_layer_blocks_2_conv_0(v_109)
        v_111 = self.backbone_fpn_layer_blocks_2_conv_1(v_110)
        v_112 = self.backbone_fpn_layer_blocks_2_conv_2(v_111)
        v_113 = self.backbone_fpn_inner_blocks_1(v_39)
        v_114 = F.upsample(input=v_112, align_corners=False, mode='bilinear', scale_factor=(2.000000,2.000000))
        v_115 = (v_113 + v_114)
        v_116 = self.backbone_fpn_layer_blocks_1_conv_0(v_115)
        v_117 = self.backbone_fpn_layer_blocks_1_conv_1(v_116)
        v_118 = self.backbone_fpn_layer_blocks_1_conv_2(v_117)
        v_119 = self.backbone_fpn_inner_blocks_0(v_21)
        v_120 = F.upsample(input=v_118, align_corners=False, mode='bilinear', scale_factor=(2.000000,2.000000))
        v_121 = (v_119 + v_120)
        v_122 = self.backbone_fpn_layer_blocks_0_conv_0(v_121)
        v_123 = self.backbone_fpn_layer_blocks_0_conv_1(v_122)
        v_124 = self.backbone_fpn_layer_blocks_0_conv_2(v_123)
        v_125 = self.hm_0(v_124)
        v_126 = self.hm_1(v_125)
        v_127 = self.hm_2(v_126)
        v_128 = self.hm_3(v_127)
        v_129 = self.hps_0(v_124)
        v_130 = self.hps_1(v_129)
        v_131 = self.hps_2(v_130)
        v_132 = self.hps_3(v_131)
        v_133 = self.hm_hp_0(v_124)
        v_134 = self.hm_hp_1(v_133)
        v_135 = self.hm_hp_2(v_134)
        v_136 = self.hm_hp_3(v_135)
        v_137 = self.hp_offset_0(v_124)
        v_138 = self.hp_offset_1(v_137)
        v_139 = self.hp_offset_2(v_138)
        v_140 = self.hp_offset_3(v_139)
        v_141 = torch.squeeze(input=v_136, dim=0)
        v_142 = torch.squeeze(input=v_128, dim=0)
        v_143 = torch.squeeze(input=v_132, dim=0)
        v_144 = torch.squeeze(input=v_140, dim=0)
        v_145 = torch.permute(input=v_142, dims=(1,2,0))
        v_146 = F.sigmoid(input=v_145)
        v_147 = (v_146 * v_3)
        v_148 = v_147.view(1, 4096, 1)
        v_149 = torch.argmax(input=v_148, dim=1, keepdim=False)
        v_150 = (v_149 / 48)
        v_151 = (v_149 - (v_150 * 48))
        v_152 = [int(v_149.size(0)), 17, 2]
        v_153 = torch.unsqueeze(input=v_149, dim=2)
        v_154 = v_153.expand(v_152, )
        v_155 = torch.permute(input=v_143, dims=(1,2,0))
        v_156 = v_155.view(-1, 17, 2)
        v_157 = torch.gather(input=v_156, index=v_154, dim=0)
        v_158 = torch.cat((v_150, v_151), dim=1)
        v_159 = torch.squeeze(input=v_157, dim=0)
        v_160 = (v_159 + v_158)
        v_161 = v_160.select(dim=1, index=0)
        v_162 = v_161.reshape(1, 1, 17)
        v_163 = (v_2 - v_162)
        v_164 = v_160.select(dim=1, index=1)
        v_165 = v_164.reshape(1, 1, 17)
        v_166 = (v_1 - v_165)
        v_167 = torch.permute(input=v_141, dims=(1,2,0))
        v_168 = F.sigmoid(input=v_167)
        v_169 = (v_168 / (torch.sqrt(((v_163 * v_163) + (v_166 * v_166))) + 1.800000e+00))
        v_170 = v_169.reshape(1, 4096, 17)
        v_171 = torch.argmax(input=v_170, dim=1, keepdim=False)
        v_172 = (v_171 / 64)
        v_173 = (v_171 - (v_172 * 64))
        v_174 = torch.squeeze(input=v_173, dim=0)
        v_175 = torch.squeeze(input=v_172, dim=0)
        v_176 = v_168.view(-1, 17)
        v_177 = torch.gather(input=v_176, index=v_171, dim=0)
        v_178 = [int(v_171.size(0)), 17, 2]
        v_179 = torch.unsqueeze(input=v_171, dim=2)
        v_180 = v_179.expand(v_178, )
        v_181 = torch.permute(input=v_144, dims=(1,2,0))
        v_182 = v_181.view(-1, 17, 2)
        v_183 = torch.gather(input=v_182, index=v_180, dim=0)
        v_184 = torch.squeeze(input=v_183, dim=0)
        v_185 = torch.stack((v_175, v_174), dim=1)
        v_186 = ((v_184 + v_185) * 1.562500e-02)
        v_187 = torch.squeeze(input=v_177, dim=0)
        v_188 = torch.unsqueeze(input=v_187, dim=1)
        v_189 = torch.cat((v_186, v_188), dim=1)
        v_190 = v_189.reshape(1, 1, 17, 3)
        return v_190

def export_torchscript():
    net = Model()
    net.eval()

    torch.manual_seed(0)
    v_0 = torch.rand(dtype=null)

    mod = torch.jit.trace(net, v_0)
    mod.save("/Users/lewisjin/work/codes/wnn/vendor/movenet/movenet_pnnx.py.pt")

def export_onnx():
    net = Model()
    net.eval()

    torch.manual_seed(0)
    v_0 = torch.rand(dtype=null)

    torch.onnx._export(net, v_0, "/Users/lewisjin/work/codes/wnn/vendor/movenet/movenet_pnnx.py.onnx", export_params=True, operator_export_type=torch.onnx.OperatorExportTypes.ONNX_ATEN_FALLBACK, opset_version=13, input_names=['in0'], output_names=['out0'])

def test_inference():
    net = Model()
    net.eval()

    torch.manual_seed(0)
    v_0 = torch.rand(dtype=null)

    return net(v_0)
